This invention relates generally to distributed computer systems.
Certain types of applications are complex and can benefit from off-loading computationally expensive algorithms to powerful compute servers. Bioinformatics applications are one type of class of applications which involve the consumption of large amounts of memory and processing time. Generally, such applications can be executed on a remote server from invocation at a client. However, this generally requires that the client or more particularly the user at the client system know the server name and often the path to invoke the remote application.
This invention resides in a remote computation system to enable a requesting client to invoke a computation on a remote server. The invention allows the client to invoke any arbitrary command-line on the remote server. The remote computation process dispatches computation requests received from clients to appropriate computation servers, manages the computation requests and allows vending or gathering of results that are sent back to the requesting client.
According to an aspect of the invention, a computer system includes a computation process. The computation process includes a client process to produce a computation request with the computation request being invoked by a command line executable. The system also includes a server process to process the computation request. The server process includes a remote computation manager process to manage computations and a dispatcher process responsive to the computation request, to invoke the remote computation manager process.
The invention includes one or more of the following advantages.
The remote computation process of the present invention allows easy invocation of remote computations. The remote computations are invoked as command line executions. The invention simplifies execution of remote computations, by providing location transparency, that is, the user of the remote computation process does not need to know where the computation is actually executed. In addition, the remote computation process also provides status monitoring of the computations. The remote computation process allows the user to off-load computer/intensive applications to compute servers that are appropriate for the computation. The remote computation system includes a computation dispatcher that determines an appropriate server on which to execute a particular application. For applications in which data are stored remotely, this remote computation system can be used to move the computation closer to the source of data used in the computation. In addition, the remote computation process can provide for batch computation processing to permit users to continue working on other problems rather than waiting for computations to be finished locally.
Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs.
Other features and advantages of the invention will be apparent from the following detailed description, and from the claims.